#装饰器
'''
装饰器本质上就是一个闭包函数，装饰器的返回值也是一个函数对象。
它可以让其他函数在不需要做任何代码变动的前提下，增加额外功能。
装饰器函数本质：通过业务函数作为参数传入到装饰器函数中。
'''
#作用：为已经窜在的对象添加额外的功能
#特点：不需要对对象做任何代码上的变动
#功能：
'''
1）函数执行时间统计
2）可以用在框架的路由传参上
3）插入日志
4）事物处理
5）权限校验
6）缓存
'''
#使用方法：
'''
1.先定义一个装饰函数（帽子）（也只可以用类 偏函数实现）。
2.再定义你的业务函数或者类（人）---这是真正要执行的。
3.最后把这顶帽子带在这个人头上。
'''
#语法糖
'''
装饰器的语法糖用法：@装饰器名称，同样可以完成对已有函数的装饰操作。
@intro 这个语法相当于执行 hello = intro(eat),为eat函数装饰并返回。
'''
#标准版装饰器(模板要熟记)
def wrapper(func):
    def inner (*args,**kwargs):
        #执行被装饰函数之前的操作
        ret = func(*args,**kwargs)
        #执行被装饰函数之后的操作
        return ret
    return inner
